Skip to content

[#8] Add Dart language support#32

Open
LahaLuhem wants to merge 17 commits into
nikolaikopernik:mainfrom
LahaLuhem:main
Open

[#8] Add Dart language support#32
LahaLuhem wants to merge 17 commits into
nikolaikopernik:mainfrom
LahaLuhem:main

Conversation

@LahaLuhem

@LahaLuhem LahaLuhem commented May 27, 2026

Copy link
Copy Markdown

Adds Dart to the languages the plugin scores (alongside Java, Kotlin, Python).

Scope

  • Hints on methods, top-level functions, getters/setters, factory constructors,
    and named constructors with non-trivial bodies. Default generative
    constructors and body-less named constructors are intentionally excluded.
  • Class-level hint only when the class has at least one scorable member.
  • Dart 3 supported: switch expressions, destructuring patterns, || patterns,
    when guards, sealed/base/final/interface modifiers, records.
  • Null safety: ?? scores like an OR sequence; ??=, !, ?. score 0.
  • async / async* / sync* / await / yield add no points themselves —
    only the structural code inside them does.

Tests

Ported the Java/Python fixtures (LogicalOperations, ExceptionStatements,
LoopStatements, Recursion, ExamplesFromArticle) plus Dart-specific
fixtures (NullSafety, PatternMatching, SwitchExpressions,
AsyncGenerators). All pass via ./gradlew test.

Build

  • New bundledPlugin("Dart", "253.28294.51") dependency.

Manual verification in ./gradlew runIde confirmed hints render correctly
and the "High code complexity" inspection picks up Dart methods.

Note: also bumps IntelliJ Platform Gradle Plugin 2.10.5→2.11.0 and Gradle
wrapper 8.5→8.14.3 (required to depend on the Dart plugin)

@LahaLuhem LahaLuhem changed the title Add Dart language support (closes #8) [#8] Add Dart language support May 27, 2026
@LahaLuhem

Copy link
Copy Markdown
Author

@nikolaikopernik Not sure about the Gradle plugin bumps. I chose to start building on top of cleaner versions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant